package com.zhuiyun.project.api.system.user.service.impl;

import com.zhuiyun.project.api.system.user.service.SysProfileService;
import com.zhuiyun.project.utils.DateTimeUtils;
import com.zhuiyun.project.utils.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;
import java.util.Date;
import java.util.UUID;

import static com.zhuiyun.project.api.system.user.controller.SysProfileController.getExtension;

/**
 * @ClassName SysProfileServiceImpl
 * @Description TODO
 * @Author lzy
 * @Date 2023/8/4 14:20
 **/
@Service
public class SysProfileServiceImpl implements SysProfileService {


    @Override
    public void uploadFile(MultipartFile file) {
        // 判断file对象是否为空
        if (StringUtils.isNotEmpty(file)) {
            //文件路径
            String fileAllPath = "";
            //获取文件名称
            String filename = file.getOriginalFilename();
            // 获取文件后缀名称
            String fileType = getExtension(file);
            //文件大小
            long fileSize = file.getSize();
            // 拼接时间文件夹
            String format = DateTimeUtils.format("yyyyMMdd",new Date());
            // 加密文件名称
            String fileUuidName = "";
            // 文件路径
            String filePath = "";
            // 项目名称 + path + 时间格式
            filePath = File.separator + format;
            // 将uuid中‘-’去掉
            fileUuidName = UUID.randomUUID().toString().replace("-","") + "." + fileType;
            // 拼接图片全路径
            fileAllPath = "C:\\Users\\38964\\Desktop" + File.separator + filePath + File.separator + fileUuidName;
            // 数据存储成功后将图片存入磁盘
            // 创建 File对象
            File targetFile = new File(fileAllPath);
//            String avatarId = UploadFileUtils.uploadAvatar(file);
            //判断文件所在文件夹是否存在
            if (!targetFile.getParentFile().exists()) {
                //不存在就创建文件夹
                targetFile.getParentFile().mkdirs();
            }
            try {
                // 将文件写入系统磁盘
                file.transferTo(targetFile);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}
